﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PServiceBus.Core.Interface {
    /// <summary>
    /// Main configuration for service bus
    /// </summary>
    public interface IServiceBusConfig {
        /// <summary>
        /// Gets or sets the object manager for the service bus
        /// </summary>
        /// <value>The object manager.</value>
        string ObjectManagerType { get; set; }
        /// <summary>
        /// Gets or sets the address which is the global data source
        /// </summary>
        /// <value>The address.</value>
        string Address { get; set; }
        /// <summary>
        /// Get or sets the message store address
        /// </summary>
        string MessageStoreAddress { get; set; }
        /// <summary>
        /// Get or sets the dead message address
        /// </summary>
        string DeadMessageAddress { get; set; }
        /// <summary>
        /// Get or sets the keyvalue store address
        /// </summary>
        string KeyValueStoreAddress { get; set; }
        /// <summary>
        /// Get or sets the resequence message address
        /// </summary>
        string ResequenceMessageAddress { get; set; }
        /// <summary>
        /// Gets or sets the message retry count for failed messages.
        /// </summary>
        /// <value>The message retry count.</value>
        int MessageRetryCount { get; set; }
        /// <summary>
        /// Gets or sets the default published message expiration
        /// </summary>
        TimeSpan DefaultMessageExpiresIn { get; set; }
        /// <summary>
        /// How often to retry failed message
        /// </summary>
        TimeSpan RetryMessageInterval { get; set; }
    }
}
